home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #2 / Amiga Plus CD - 2004 - No. 02.iso / AmigaPlus / Tools / Development / RxMUI / Examples / OwnARexx.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  2004-01-31  |  2.8 KB  |  88 lines

  1. /* The ARexx port is mine! */
  2.  
  3. signal on halt
  4. signal on break_c
  5. call Init
  6. call CreateApp
  7. call HandleApp
  8. /* never reached */
  9. /***********************************************************************/
  10. Init: procedure expose global.
  11.     l="rmh.library";if ~show("L",l) then;if ~addlib(l,0,-30) then exit
  12.     if AddLibrary("rexxsupport.library","rxmui.library")~=0 then exit
  13.     return
  14. /***********************************************************************/
  15. HandleApp: procedure expose global.
  16.     call getattr("app","base","PORTNAME")
  17.     ps=PortSignal(portname)
  18.     ctrl_c=2**12
  19.     do forever
  20.         call NewHandle("APP","H",or(ctrl_c,ps))
  21.         if and(h.signals,ctrl_c)~=0 then exit
  22.         if and(h.signals,ps)>0 then call HandlePort(portname)
  23.         select
  24.             when h.event="QUIT" then exit
  25.             when h.event="DROPEVENT" then call DropFun(h.from,h.to)
  26.             when left(h.event,1)="B" then do
  27.                 parse var h.event "B" b
  28.                 say global.url.b.url global.url.b.name
  29.             end
  30.             otherwise nop
  31.         end
  32.     end
  33.     /* never reached */
  34. /***********************************************************************/
  35. err: procedure expose sigl RxMUIError
  36. parse arg res
  37.     msg = ProgramName()":" GetRxMUIString(res) "in line" sigl-1
  38.     if RxMUIError~="RXMUIERROR" then msg = msg "["RxMUIError"]"
  39.     say msg
  40.     exit
  41. /***********************************************************************/
  42. CreateApp: procedure expose global.
  43.     app.Title="OwnARexxExample"
  44.     app.Version="$VER: OwnARexxExample 2.0 (12.10.2000)"
  45.     app.Copyright="©2000, alfie"
  46.     app.Author="alfie"
  47.     app.Description="OwnARexxExample"
  48.     app.Base="RXMUIEXAMPLE"
  49.     app.OwnARexx=1
  50.     app.SubWindow="win"
  51.      win.Title="OwnARexxExample"
  52.      win.Contents="mgroup"
  53.       mgroup.frametitle="Messages received"
  54.       mgroup.0="msglist"
  55.        msglist.class="listview"
  56.        msglist.input=1
  57.        msglist.list="list"
  58.       mgroup.1=text("info")
  59.  
  60.     res=NewObj("APPLICATION","APP")
  61.     if res~=0 then call err(res)
  62.  
  63.     call Notify("win","closerequest",1,"app","returnid","quit")
  64.     call Notify("msglist","entries","everytime","msglist","jump","triggervalue")
  65.  
  66.     call set("info","Contents","Send msgs to:" xget("app","base"))
  67.     call set("win","open",1)
  68.  
  69.     return
  70. /***********************************************************************/
  71. halt:
  72. break_c:
  73.     exit
  74. /**************************************************************************/
  75. HandlePort: procedure
  76. parse arg portname
  77.     pkt=Getpkt(portname)
  78.     do while pkt~=null()
  79.         msg=getarg(pkt)
  80.         call DoMethod(msglist,"insert",msg,"bottom")
  81.         call DoMethod("app","inputbuffered")
  82.         call Reply(pkt)
  83.         if upper(msg)="QUIT" then exit
  84.         pkt=Getpkt(portname)
  85.     end
  86.     return
  87. /**************************************************************************/
  88.